namespace Core
{
    
    public sealed class RobotDamage
    {
        private double _kineticDamage;
        private double _seismicDamage;
        private double _thermalDamage;
        private double _chemicalDamage;

        public RobotDamage(){}

        public RobotDamage(double kineticDamage, double seismicDamage, double thermalDamage, double chemicalDamage)
        {
            _kineticDamage = kineticDamage  > 0 ? kineticDamage : 0;
            _seismicDamage = seismicDamage > 0 ? seismicDamage : 0;
            _thermalDamage = thermalDamage > 0 ? thermalDamage : 0;
            _chemicalDamage = chemicalDamage > 0 ? chemicalDamage : 0;
        }

        public double Total
        {
            get { return KineticDamage + SeismicDamage + ThermalDamage + ChemicalDamage; }
        }

        public double KineticDamage
        {
            get { return _kineticDamage; }
            internal set { _kineticDamage = value > 0 ? value : 0; }
        }

        public double SeismicDamage
        {
            get { return _seismicDamage; }
            internal set { _seismicDamage = value > 0 ? value : 0; }
        }

        public double ThermalDamage
        {
            get { return _thermalDamage; }
            internal set { _thermalDamage = value > 0 ? value : 0; }
        }

        public double ChemicalDamage
        {
            get { return _chemicalDamage; }
            internal set { _chemicalDamage = value > 0 ? value : 0; }
        }
    }
}